home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / DESK / CORE / Desk / h / Dialog2 < prev    next >
Text File  |  1996-05-21  |  3KB  |  80 lines

  1.  
  2. #ifndef __Desk_Dialog2_h
  3. #define __Desk_Dialog2_h
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #ifndef __Desk_Wimp_h
  8. #include "Wimp.h"
  9. #endif
  10. #ifndef __Desk_Window_h
  11. #include "Window.h"
  12. #endif
  13. typedef enum {
  14. Desk_dialog2_type_CLOSED = 0,
  15. Desk_dialog2_type_MENULEAF,
  16. Desk_dialog2_type_MENU,
  17. Desk_dialog2_type_STATIC
  18. }
  19. Desk_dialog2_dialog2type;
  20. typedef struct Desk_dialog2_block *Desk_dialog2_blockptr;
  21. typedef void (*Desk_dialog2_openfn)(Desk_dialog2_blockptr);
  22. typedef void (*Desk_dialog2_okfn)(Desk_dialog2_blockptr);
  23. typedef struct Desk_dialog2_block {
  24. void *reference; 
  25. const char *templatename; 
  26. Desk_window_handle window; 
  27. Desk_dialog2_openfn openfn; 
  28. Desk_dialog2_okfn okfn; 
  29. union {
  30. int value;
  31. struct {
  32. unsigned int type : 2; 
  33. unsigned int keepwindow : 1;
  34. unsigned int notifyclose : 1;
  35. int okbutton : 9;
  36. int cancelbutton : 9;
  37. int maxtitlesize : 10;
  38. }
  39. data;
  40. }
  41. flags;
  42. }
  43. Desk_dialog2_block;
  44. Desk_dialog2_block *Desk_Dialog2_CreateDialogBlock(
  45. const char *templatename, 
  46. Desk_icon_handle okbutton,
  47. Desk_icon_handle cancelbutton,
  48. Desk_dialog2_openfn openfn,
  49. Desk_dialog2_okfn okfn,
  50. void *reference
  51. );
  52. void Desk_Dialog2_OpenDialogMenuLeaf(Desk_event_pollblock *event, Desk_dialog2_block *dialog2);
  53. void Desk_Dialog2_OpenDialogMenu(Desk_dialog2_block *dialog2, Desk_window_openpos openpos);
  54. void Desk_Dialog2_OpenDialogStatic(Desk_dialog2_block *dialog2, Desk_window_openpos openpos);
  55. void Desk_Dialog2_CloseDialog(Desk_dialog2_block *dialog2);
  56. void Desk_Dialog2_DeleteDialog(Desk_dialog2_block *dialog2);
  57. #ifdef Desk__using_SDLS
  58. extern Desk_dialog2_block **Desk_Dialog2__Ref_menublock(void);
  59. #endif
  60. #if defined(Desk__using_SDLS) && !defined(Desk__making_Dialog2)
  61. #define Desk_dialog2_menublock (*Desk_Dialog2__Ref_menublock())
  62. #else
  63. extern Desk_dialog2_block *Desk_dialog2_menublock;
  64. #endif
  65. void Desk_Dialog2_Window_GetWindowOpenPos(
  66. Desk_wimp_point *pos, Desk_window_openpos openpos, Desk_window_handle window
  67. );
  68. void Desk_Dialog2_EnsureWindowHandle(Desk_dialog2_block *dialog2);
  69. #define Desk_Dialog2_ChangeCloseNotification(dialog2, x) (dialog2)->flags.data.notifyclose = (x)
  70. #define Desk_Dialog2_NotifyClose(dialog2) Desk_Dialog2_ChangeCloseNotification(dialog2, 1)
  71. #define Desk_Dialog2_DontNotifyClose(dialog2) Desk_Dialog2_ChangeCloseNotification(dialog2, 0)
  72. #define Desk_Dialog2_ChangeKeepWindow(dialog2, x) (dialog2)->flags.data.keepwindow = (x)
  73. #define Desk_Dialog2_KeepWindow(dialog2) Desk_Dialog2_ChangeKeepWindow(dialog2, 1)
  74. #define Desk_Dialog2_DontKeepWindow(dialog2) Desk_Dialog2_ChangeKeepWindow(dialog2, 0)
  75. #define Desk_Dialog2_ChangeTitleSize(dialog2, x) (dialog2)->flags.data.maxtitlesize = (x)
  76. #ifdef __cplusplus
  77. }
  78. #endif
  79. #endif
  80.